/*
 * ICompartirPistaAlbum.h - Grupo 5 - Prog. Avanzada 2011
 *
 *  Javier Dominguez - 4.901.161-6
 *  Marcelo Parada - 1.977.094-9
 *  Rodrigo Ruiz - 4.481.611-2
 *  Maximiliano Silvera - 4.106.938-6
 */

#ifndef ICOMPARTIRPISTAALBUM_H_
#define ICOMPARTIRPISTAALBUM_H_

#include <string>
#include "../dt/PistaDT.h"
#include "../dt/AlbumDT.h"
#include "../dt/ArtistaDT.h"
#include "../util/collections/List.h"
#include "../util/genCollections/ColConcrete.h"

using namespace std;

class ICompartirPistaAlbum
{
public:
	virtual ArtistaDT *obtenerArtista(string nombre) = 0;

	virtual ColConcrete<AlbumDT*> *obtenerListadoAlbumes() = 0;

	virtual AlbumDT *obtenerAlbum(string nombre) = 0;

	virtual int crearPista(PistaDT *pistaDT) = 0;

	virtual void crearAlbum(AlbumDT *albumDT) = 0;

	virtual void crearArtista(ArtistaDT *artistaDT) = 0;

	virtual void asociarAlbumPista(AlbumDT *albumDT, PistaDT *pistaDT) = 0;

	virtual void asociarArtistaTema(ArtistaDT *artistaDT, TemaDT *temaDT) = 0;

	virtual void asociarArtistaAlbum(ArtistaDT *artistaDT, AlbumDT *albumDT) = 0;

	virtual ~ICompartirPistaAlbum();
};

#endif /* ICOMPARTIRPISTAALBUM_H_ */
